Вы можете создать свой собственный стиль отображения в OpenXava, просто добавив CSS файл.
Изменение стиля по умолчанию (начиная с версии 4.5)
Начиная с версии 4.5 вы можете добавлять и изменять стили в файле custom.css находящемся в web/xava/style. Для того, чтобы перекрыть существующий стиль просто определите его вашем custom.css файле. Так, если вы добавите:
body{
font-size: 9px;
}
то вы измените font-size во всем вашем приложении (включая отображение в порталах).
Определение собственного стиля
Эти инструкции актуальны для версии 4.2 и выше, для более ранних версий смотрите примеры в OpenXavaTest/xava.properties
Для того, чтобы определить свой собственный стиль, добавьте следующие записи в xava.properties файл вашего проекта:
Затем создайте папку с названием mystyle внутри web/xava/style и добавьте файл mystyle.css в эту папку. В этом файле вы можете использовать следующие CSS классы: ox-module, ox-view, ox-detail, ox-action-link, ox-image-link, ox-button-bar, ox-button-bar-button, ox-active, ox-first, ox-last, ox-label, ox-module-description, ox-frame-content, ox-list, ox-list-header, ox-list-subheader, ox-list-pair, ox-list-odd, list-pair-selected, list-odd-selected, ox-list-info, ox-list-info-detail, ox-list-title, ox-header-list-count, ox-frame (new in v4.8, before it was frame), ox-frame-actions, ox-frame-title, ox-frame-title-label, ox-errors, ox-messages, ox-section, ox-section-tab, ox-active-section, ox-section-link, ox-collection-list-actions, ox-bottom-buttons, ox-page-navigation-selected, ox-page-navigation, ox-page-navigation-pages, ox-page-navigation-arrow, ox-page-navigation-arrow-disable, ox-images-gallery (new in v4.8), ox-help, ox-total-row, ox-total-cell, ox-total-capable-cell, ox-filter-cell, ox-frame-totals, ox-frame-totals-label, ox-frame-totals-value.
По желанию, вы можете создать свой собственный Style класс, расширяющий org.openxava.web.style.Style. Это позволяет вам еще лучше контролировать то, как выглядит и ведет себя ваше приложение.
Предопределенные стили
OpenXava предоставляется с несколькими заранее предопределенными стилями. Вы можете настраивать их в фале properties/xava.properties вашего проекта:
# styleClass and styleCSS have only effect outside a portal,
# inside a portal OX portlets acquire automatically the portal skin.
# Liferay 5.1: This is the DEFAULT, so you do not need to uncomment the next lines
#styleClass=org.openxava.web.style.Liferay51Style
#styleCSS=liferay51/css/everything_unpacked.css
# Liferay 4.3/4.4/5.0: uncomment the next line for use this nice and slow style
#styleClass=org.openxava.web.style.Liferay43Style
#styleCSS=liferay43/css/everything_unpacked.css
# Classic style: uncomment the next line for use the old OX style
#styleClass=org.openxava.web.style.PortalStyle
#styleCSS=default.css
В порталах
В порталах портлеты OpenXava автоматически подстраиваются под стиль портала, потому, если вы работаете с порталом, вам необходимо только создавать и менять стиль самого портала, а приложение OpenXava подстроится под него.
Дополнительно, если вы хотите использовать определенный стиль для портала, это можно сделать при помощи следующих свойств, доступных в xava.properties: liferay6StyleClass, liferay51StyleClass, liferay41StyleClass, liferay43StyleClass, webSpherePortal61StyleClass, webSpherePortal6StyleClass, webSpherePortalStyleClass, JetSpeed2Style.
Таким образом, если вы хотите создать ваш собственный стиль для приложения OpenXava, запускаемого в портале Liferay 6, просто добавьте следующую строку в xava.properties:
Это способ сопоставления выбранного стиля определенному обозревателю или устройству. Вы можете использовать эту технику в вашем стиле, хотя при этом вам необходимо создать styles.properties файл в properties папке вашего проекта и добавить туда строку с классом вашего стиля, как в следующем примере:
com.mycompany.myapp.style.MyDeviceStyle
Кроме того, вам необходимо описать класс MyDeviceStyle with the c соответствующий isForBrowse() методом.
JavaScript код
Стиль для iPad также использует встроенные эффекты iPad такие как flip и slide. Чтобы этого достичь, необходимо использовать JavaScript код. В нашем случае мы определяем метод для определения способа, при помощи которого HTML token полученный при помощи AJAX с сервера, связывается с элементом HTML документа:
public String getSetHtmlFunction() {
return "ipad.setHtml";
}
Таким образом, мы указываем, что, вместо стандартной, необходимо использовать функцию ipad.setHtml. Эта функция поределена в ipad.js файле. Мы должны также указать это классу стиля, который загружает этот JavaScript файл:
Table of Contents
Пользовательский стиль отображения
Вы можете создать свой собственный стиль отображения в OpenXava, просто добавив CSS файл.Изменение стиля по умолчанию (начиная с версии 4.5)
Начиная с версии 4.5 вы можете добавлять и изменять стили в файле custom.css находящемся в web/xava/style.Для того, чтобы перекрыть существующий стиль просто определите его вашем custom.css файле. Так, если вы добавите:
body{ font-size: 9px; }то вы измените font-size во всем вашем приложении (включая отображение в порталах).Определение собственного стиля
Эти инструкции актуальны для версии 4.2 и выше, для более ранних версий смотрите примеры в OpenXavaTest/xava.propertiesДля того, чтобы определить свой собственный стиль, добавьте следующие записи в xava.properties файл вашего проекта:
Затем создайте папку с названием mystyle внутри web/xava/style и добавьте файл mystyle.css в эту папку. В этом файле вы можете использовать следующие CSS классы: ox-module, ox-view, ox-detail, ox-action-link, ox-image-link, ox-button-bar, ox-button-bar-button, ox-active, ox-first, ox-last, ox-label, ox-module-description, ox-frame-content, ox-list, ox-list-header, ox-list-subheader, ox-list-pair, ox-list-odd, list-pair-selected, list-odd-selected, ox-list-info, ox-list-info-detail, ox-list-title, ox-header-list-count, ox-frame (new in v4.8, before it was frame), ox-frame-actions, ox-frame-title, ox-frame-title-label, ox-errors, ox-messages, ox-section, ox-section-tab, ox-active-section, ox-section-link, ox-collection-list-actions, ox-bottom-buttons, ox-page-navigation-selected, ox-page-navigation, ox-page-navigation-pages, ox-page-navigation-arrow, ox-page-navigation-arrow-disable, ox-images-gallery (new in v4.8), ox-help, ox-total-row, ox-total-cell, ox-total-capable-cell, ox-filter-cell, ox-frame-totals, ox-frame-totals-label, ox-frame-totals-value.
По желанию, вы можете создать свой собственный Style класс, расширяющий org.openxava.web.style.Style. Это позволяет вам еще лучше контролировать то, как выглядит и ведет себя ваше приложение.
Предопределенные стили
OpenXava предоставляется с несколькими заранее предопределенными стилями. Вы можете настраивать их в фале properties/xava.properties вашего проекта:В порталах
В порталах портлеты OpenXava автоматически подстраиваются под стиль портала, потому, если вы работаете с порталом, вам необходимо только создавать и менять стиль самого портала, а приложение OpenXava подстроится под него.Дополнительно, если вы хотите использовать определенный стиль для портала, это можно сделать при помощи следующих свойств, доступных в xava.properties: liferay6StyleClass, liferay51StyleClass, liferay41StyleClass, liferay43StyleClass, webSpherePortal61StyleClass, webSpherePortal6StyleClass, webSpherePortalStyleClass, JetSpeed2Style.
Таким образом, если вы хотите создать ваш собственный стиль для приложения OpenXava, запускаемого в портале Liferay 6, просто добавьте следующую строку в xava.properties:
Понятно, что вам также необходимо описать MyLiferayStyle class.
Пример: стиль для iPad
Стиль для iPad по умолчанию включен в OpenXava и применяется автоматически, если пользователь обращается к приложению при помощи iPad.Определение обозревателя/устройства
Для того, чтобы включить определение устройства, мы добавляем следующий метод в класс стиля:public boolean isForBrowse(String browser) { return browser != null && browser.contains("iPad"); }Это способ сопоставления выбранного стиля определенному обозревателю или устройству. Вы можете использовать эту технику в вашем стиле, хотя при этом вам необходимо создать styles.properties файл в properties папке вашего проекта и добавить туда строку с классом вашего стиля, как в следующем примере:Кроме того, вам необходимо описать класс MyDeviceStyle with the c соответствующий isForBrowse() методом.
JavaScript код
Стиль для iPad также использует встроенные эффекты iPad такие как flip и slide. Чтобы этого достичь, необходимо использовать JavaScript код. В нашем случае мы определяем метод для определения способа, при помощи которого HTML token полученный при помощи AJAX с сервера, связывается с элементом HTML документа:public String getSetHtmlFunction() { return "ipad.setHtml"; }Таким образом, мы указываем, что, вместо стандартной, необходимо использовать функцию ipad.setHtml. Эта функция поределена в ipad.js файле. Мы должны также указать это классу стиля, который загружает этот JavaScript файл:private static String [] jsFiles = { "ipad/ipad.js", }; public String [] getNoPortalModuleJsFiles() { return jsFiles; }Это сам ipad.js файл в папке web/style/ipad:CSS файл
Ниже приведен полный ipad.css файл. Этот файл вы можете найти в дистрибутиве OpenXava, в папке OpenXava/web/style/ipad.Класс стиля
Ниже приведен код класса IPadStyle. Вы можете найти этот класс в дистрибутиве OpenXava, в OpenXava/src/org.openxava.web.style.